/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.delogic.simuladorbancario.business;

import br.com.delogic.simuladorbancario.model.Agencia;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author julioVanni
 */
public class AgenciaBusiness {
    
    private Agencia agencia;
    //private Agencia[] agencias = new Agencia[10];
    private final List agencias = new ArrayList();
    //private int indice = 0;
    private static AgenciaBusiness agenciaBusiness;
    
    private AgenciaBusiness(){
       
        for(int i = 0; i < 5; i++){
           
           Agencia agencia = new Agencia();
           
           agencia.setAtiva((i + 1) % 2 == 0 ? true : false);
           agencia.setCnpj("123456" + i);
           agencia.setCodigo(i + 1);
           agencia.setEndereco(i + 1 + " de novembro");
           agencia.setNome("Agencia " + i);
            cadastrarAgencia(agencia);
             
        }
            
    }
      
    public static AgenciaBusiness getInstance(){
        if (agenciaBusiness == null){
            agenciaBusiness = new AgenciaBusiness();
        }
        return agenciaBusiness;
    }
    
    public void cadastrarAgencia(Agencia agencia){
        //this.agencia = agencia;
        
        //agencias[indice] = agencia;
        //indice++;
        agencias.add(agencia);
        
        
        
        
    }
    
    public Agencia consultarAgencia(int codigoAgencia){
        //return this.agencia;
        
       /* for(int i = 0; i < agencias.length; i++){
            if (agencias[i].getCodigo() == codigoAgencia)
                return agencias[i];
        } 
        return null;
        */
        
        for(int i = 0; i < agencias.size(); i++){
            Agencia ag = (Agencia) agencias.get(i);
            
            if (ag.getCodigo() == codigoAgencia)
                return ag;
        }
        
        return null;
    }
    
    public Agencia alterarAgencia(Agencia agencia){
        return this.agencia;
    }
    
    public boolean desativarAgencia(int codigoAgencia){
        Agencia agencia = consultarAgencia(codigoAgencia);
        if(agencia != null){
            agencia.setAtiva(false);
            return true;
        }
        return false;
    } 
    
    public boolean ativarAgencia(int codigoAgencia){
        Agencia agencia = consultarAgencia(codigoAgencia);
        if(agencia != null){
            agencia.setAtiva(true);
            return true;
        }
        
        return false;
    }
    
}
